/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fait.ferm.ui;

import fait.ferm.global.Glob;
import fait.ferm.persists.Cow;
import fait.ferm.persists.Cow_group;
import fait.ferm.persists.SimpleDirItem;
import java.net.URL;
import java.util.ArrayList;
import java.util.ResourceBundle;
import javafx.beans.InvalidationListener;
import javafx.beans.Observable;
import javafx.beans.property.ObjectProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Accordion;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.ProgressBar;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TitledPane;
import javafx.scene.control.ToggleGroup;
import javafx.scene.control.TreeItem;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;

/**
 *
 * @author alex
 */
public class CowSelectDialogController implements Initializable{
    public BorderPane dialogWindow;
	public ObjectProperty<Cow> returnedValue;
	private final ToggleGroup selectGroup = new ToggleGroup();
	
	@FXML
	private Accordion cowGroupAcc;
	@FXML
	private Button okBtn;
	@FXML
	private Button cancelBtn;

	@Override
	public void initialize(URL url, ResourceBundle rb) {
		
		fillPets();
		
	}
	@FXML
    private void dialogWindowCloseClick() {
        returnedValue = null;
        dialogWindow.getChildren().clear();
		dialogWindow.toBack();
    }
	@FXML
    private void okClick() {
        returnedValue.set((Cow) selectGroup.getSelectedToggle().getUserData());
        dialogWindow.getChildren().clear();
		dialogWindow.toBack();
    }
	private void fillPets(){
        //заполнить аккордион группами животных
        try {
			cowGroupAcc.getPanes().clear();
            ArrayList<Cow_group> cg = (ArrayList<Cow_group>)Glob.getFermEngine().getCowGroup().obj;
            
			for(Cow_group cur_group: cg){	
                BorderPane conteiner = new BorderPane(); //контейнер для вкладки акордиона
                ListView cowList = new ListView(); //чтобы вывести список
                TitledPane buf = new TitledPane(cur_group.toString(), conteiner); //вкладка аккордиона
		
                cowGroupAcc.getPanes().add(buf);
                conteiner.setCenter(cowList); //устанавливаем список в центр, т.е. размером во всю вкладку
                
                ObservableList cows = FXCollections.observableArrayList();
                ArrayList<Cow> cowArr = (ArrayList<Cow>)Glob.getFermEngine().getCowFromGroup(cur_group.getId()).obj;
                
				for(Cow cur_cow: cowArr){
					HBox cowInfo = new HBox(16.0);
                    cows.add(cowInfo);
					
                    ProgressBar wear = new ProgressBar(); //для вывода визуального состояния лошади
					wear.setStyle("-fx-background-color: #8f8f8f;");
                    wear.progressProperty().set(cur_cow.percent_wear);
					RadioButton rb = new RadioButton();
					rb.setUserData(cur_cow);
					rb.setToggleGroup(selectGroup);
					cowInfo.getChildren().add(rb);
					cowInfo.getChildren().add(wear);
					cowInfo.getChildren().add(new Label(cur_group.cow_type.getName() + " " + cur_cow.getId()));
                }
                
                cowList.setItems(cows); //подцепляем лист к контролу
            }
        } catch (Exception ex) {
            //
        }
		
	}
}
